﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
using System.ComponentModel;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class CadastroEstabelecimento : System.Web.UI.Page
    {
        
        BindingList<Cidade> listaCidade = new BindingList<Cidade>();
        Utilizadades_WS util = new Utilizadades_WS();
        PubClub_Estabelecimento_WS webServiceEstacionamento = new PubClub_Estabelecimento_WS();
        ObjetoEstabelecimento estabelecimento = new ObjetoEstabelecimento();

         # region metodo para carregar lista de estados
        public void carregarDropDownEstados()
        {
            BindingList<UF> listaUF = new BindingList<UF>(util.Get_UFs());

            for (int i = 0; i < listaUF.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaUF[i].Nome;
                li.Value = listaUF[i].Id.ToString();
                DdEstado.Items.Add(li);

            }
        }
        #endregion

        #region metodo para carregar lista de cidades ao clicaar no estado da dropdown list
        public void carregarDropDownCidades()
        {


            listaCidade.Clear();
            DdCidade.Items.Clear();
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(Convert.ToInt32(DdEstado.SelectedValue.ToString())));


            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                DdCidade.Items.Add(li);

            }

        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                carregarDropDownEstados();

            }
        }

        protected void btCadastrarClick(object sender, EventArgs e)
        {
            

            estabelecimento.CNPJ = textBoxCNPJ.Text.Trim();
            estabelecimento.NomeFantasia = textBoxNomeFantasia.Text.Trim();
            estabelecimento.RazaoSocial = textBoxRazaoSocial.Text.Trim();
            estabelecimento.CEP = textboxCEP.Text.Trim();
            estabelecimento.EmailContato = textBoxEmail.Text.Trim();
            estabelecimento.CelularContato = textBoxTelefone.Text.Trim();
            estabelecimento.Bairro = textBoxBairro.Text.Trim();
            estabelecimento.CidadeId = Convert.ToInt32(DdCidade.SelectedValue.ToString());
            estabelecimento.Complemento = textBoxComplemento.Text.Trim();
            estabelecimento.Rua = textBoxRua.Text.Trim();
            estabelecimento.Senha = textBoxSenha.Text.Trim();
            estabelecimento.FileBinaryData = null;
            estabelecimento.FileName = "fileName";
            estabelecimento.FileSize = "fileSize";
            estabelecimento.Numero = textBoxNumeroRua.Text.Trim();
            estabelecimento.TelefoneContato = textBoxTelefone.Text.Trim();
            estabelecimento.NomeContato = textBoxNomeFantasia.Text.Trim();
            
           
    
            #region Verifica razão social em branco
            if (textBoxRazaoSocial.Text.Trim().Equals(""))
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = "Razão Social deve ser preenchido.";
                LabelAviso.Visible = true;
                textBoxRazaoSocial.Focus();
                return;
            }
            else
            #endregion
            #region Verifica nome fantasia em branco
            if (textBoxNomeFantasia.Text.Trim().Equals(""))
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = "Nome Fantasia deve ser preenchido.";
                LabelAviso.Visible = true;
                textBoxNomeFantasia.Focus();
                return;
            }
            else
            #endregion
            #region Verifica senhas em branco
                if (textBoxSenha.Text.Trim().Equals(""))
                {
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Text = "Senha deve ser preenchida.";
                    LabelAviso.Visible = true;
                    textBoxSenha.Focus();
                    return;
                }
                else
                    if (textBoxSenha2.Text.Trim().Equals(""))
                    {
                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                        LabelAviso.Text = " Confirmar senha deve ser preenchido.";
                        LabelAviso.Visible = true;
                        textBoxSenha2.Focus();
                        return;
                    }
                    else
                #endregion
            #region Verifica se as senhas são iguais
                        if (!textBoxSenha.Text.Trim().Equals(textBoxSenha2.Text.Trim()))
                        {
                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                            LabelAviso.Text = "Senhas não conferem.";
                            LabelAviso.Visible = true;
                            textBoxSenha.Focus();
                            return;
                        }
                        else
                        #endregion
            #region Verfica o email em branco
                            if (textBoxEmail.Text.Trim().Equals(""))
                            {
                                LabelAviso.ForeColor = System.Drawing.Color.Red;
                                LabelAviso.Text = "Email deve ser preenchido.";
                                LabelAviso.Visible = true;
                                textBoxEmail.Focus();
                            }
                            else
                            #endregion
            #region Verifica numero do celular em branco
                                if (textBoxTelefone.Text.Trim().Equals(""))
                                {
                                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                                    LabelAviso.Text = "Número do telefone deve ser preenchido.";
                                    LabelAviso.Visible = true;
                                    textBoxTelefone.Focus();
                                }
                                else
                                #endregion
            #region Verifica CNPJ em branco
                                    if (textBoxCNPJ.Text.Trim().Equals(""))
                                    {
                                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                                        LabelAviso.Text = "CNPJ deve ser preenchido.";
                                        LabelAviso.Visible = true;
                                        textBoxCNPJ.Focus();
                                    }
                                    else
                                    #endregion
            #region Verifica CEP em branco
                                        if (textboxCEP.Text.Trim().Equals(""))
                                        {
                                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                                            LabelAviso.Text = "CEP deve ser preenchida.";
                                            LabelAviso.Visible = true;
                                            textboxCEP.Focus();
                                        }
                                        else
                                        #endregion
            #region verifica rua em branco
                                            if (textBoxRua.Text.Trim().Equals(""))
                                            {
                                                LabelAviso.ForeColor = System.Drawing.Color.Red;
                                                LabelAviso.Text = "Rua deve ser preenchida.";
                                                LabelAviso.Visible = true;
                                                textBoxRua.Focus();
                                            }
                                            else
                                            #endregion
            #region Verifica bairro em branco
                                                        if (textBoxBairro.Text.Trim().Equals(""))
                                                        {
                                                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                                                            LabelAviso.Text = "Bairro deve ser preenchido.";
                                                            LabelAviso.Visible = true;
                                                            textBoxBairro.Focus();
                                                        }
                                                        #endregion



            ObjetoRetornoEstabelecimento retornoWebService = webServiceEstacionamento.CreateEstabelecimento(estabelecimento.CNPJ, 
                estabelecimento.RazaoSocial, estabelecimento.NomeFantasia, estabelecimento.NomeContato, estabelecimento.TelefoneContato,
                estabelecimento.CelularContato, estabelecimento.EmailContato, estabelecimento.Senha, estabelecimento.CEP, estabelecimento.Rua,
                estabelecimento.Numero, estabelecimento.Bairro, estabelecimento.CidadeId, estabelecimento.Complemento, null, "nome");

            if (retornoWebService.Sucesso == true)
            {
                LabelAviso.ForeColor = System.Drawing.Color.Green;
                LabelAviso.Text = retornoWebService.Menssagem;
                LabelAviso.Visible = true;

            }
            else
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = retornoWebService.Menssagem;
                LabelAviso.Visible = true;

            }

        }

        protected void DdEstado_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregarDropDownCidades();
        }
    }
}